import { shallowRef } from 'vue';

import ModbusRTU from './formChild/ModbusRTU.vue';
import MQTT from './formChild/MQTT.vue';
import ModbusTCP from './formChild/ModbusTCP.vue';
import OPCUA from './formChild/OPCUA.vue';
import HTTP from './formChild/HTTP.vue';
import HTTPS from './formChild/HTTPS.vue';
import PLC485 from './formChild/PLC(485).vue';
import CANModbus from './formChild/CAN(Modbus).vue';
import WIFIModbus from './formChild/WIFI(Modbus).vue';
import WIFIMQTT from './formChild/WIFI(MQTT).vue';

const componentList = shallowRef([
  {
    key: 'ModbusRTU',
    name: 'ModbusRTU',
    show: true,
    component: ModbusRTU,
  },
  {
    key: 'MQTT',
    name: 'MQTT',
    show: true,
    component: MQTT,
  },
  {
    key: 'ModbusTCP',
    name: 'ModbusTCP',
    show: true,
    component: ModbusTCP,
  },
  {
    key: 'MQTT_SN',
    name: 'MQTT_SN',
    show: true,
    component: MQTT,
  },
  {
    key: 'OPCUA',
    name: 'OPCUA',
    show: true,
    component: OPCUA,
  },
  {
    key: 'HTTP',
    name: 'HTTP',
    show: true,
    component: HTTP,
  },
  {
    key: 'HTTPS',
    name: 'HTTPS',
    show: true,
    component: HTTPS,
  },
  {
    key: 'PLC(485)',
    name: 'PLC(485)',
    show: true,
    component: PLC485,
  },
  {
    key: 'CAN(Modbus)',
    name: 'CAN(Modbus)',
    show: true,
    component: CANModbus,
  },
  {
    key: 'NB-IOT(Modbus)',
    name: 'NB-IOT(Modbus)',
    show: true,
    component: ModbusTCP,
  },
  {
    key: 'NB-IOT(MQTT)',
    name: 'NB-IOT(MQTT)',
    show: true,
    component: MQTT
  },
  {
    key: 'LoRa(Modbus)',
    name: 'LoRa(Modbus)',
    show: true,
    component: ModbusTCP,
  },
  {
    key: 'LoRa(MQTT)',
    name: 'LoRa(MQTT)',
    show: true,
    component: MQTT,
  },
  {
    key: '5G(Modbus)',
    name: '5G(Modbus)',
    show: true,
    component: ModbusTCP,
  },
  {
    key: '5G(MQTT)',
    name: '5G(MQTT)',
    show: true,
    component: MQTT,
  },
  {
    key: '4G(Modbus)',
    name: '4G(Modbus)',
    show: true,
    component: ModbusTCP,
  },
  {
    key: '4G(MQTT)',
    name: '4G(MQTT)',
    show: true,
    component: MQTT,
  },
  {
    key: 'CAT1(Modbus)',
    name: 'CAT1(Modbus)',
    show: true,
    component: ModbusTCP,
  },
  {
    key: 'CAT1(MQTT)',
    name: 'CAT1(MQTT)',
    show: true,
    component: MQTT,
  },
  {
    key: 'WIFI(Modbus)',
    name: 'WIFI(Modbus)',
    show: true,
    component: WIFIModbus,
  },
  {
    key: 'WIFI(MQTT)',
    name: 'WIFI(MQTT)',
    show: true,
    component: WIFIMQTT,
  },
  {
    key: 'OPCDA',
    name: 'OPCDA',
    show: true,
    component: OPCUA
  },
  {
    key: 'ODBC',
    name: 'ODBC',
    show: true,
    component: null,
  },
  {
    key: 'JDBC',
    name: 'JDBC',
    show: true,
    component: null,
  },
  {
    key: 'RESP',
    name: 'RESP',
    show: true,
    component: null,
  },
  {
    key: 'Thrift',
    name: 'Thrift',
    show: true,
    component: null,
  },
  {
    key: 'HadoopRPC',
    name: 'HadoopRPC',
    show: true,
    component: null,
  },
  {
    key: 'MongonDBWireProtocol',
    name: 'MongonDBWireProtocol',
    show: true,
    component: null,
  },
  {
    key: 'FTP',
    name: 'FTP',
    show: true,
    component: null,
  },
]);

export default componentList;
